package Graphique;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.rmi.RemoteException;

import javax.swing.*;

import Client.Client;

public class HorsConnexion extends JFrame{
	private static final long serialVersionUID = 1L;

	private Client client;
	
	private JLabel intro = new JLabel("Hors connexion, choix possibles : ");
	private JButton twouitTopic = new JButton("Voir un topic");
	private JTextField champsTopic = new JTextField();
	private JButton twouitUtilisateur = new JButton("Voir un utilisateur");
	private JTextField champsUtilisateur = new JTextField();
	private JButton listeTopics = new JButton("Voir tous les topics");
	private JButton listeUtilisateurs = new JButton("Voir tous les utilisateurs");
	private JButton annuler = new JButton("Annuler"); 
	private ActionListenerChoix alc = new ActionListenerChoix();
	
	public HorsConnexion(Client client){
		super("Hors connexion");
		
		this.setSize(250, 250);
		
		twouitTopic.addActionListener(alc);
		twouitUtilisateur.addActionListener(alc);
		listeTopics.addActionListener(alc);
		listeUtilisateurs.addActionListener(alc);
		annuler.addActionListener(alc);
		
		JPanel jp = new JPanel();
		jp.setLayout(new GridLayout(2, 2));
		jp.add(twouitTopic);
		jp.add(champsTopic);
		jp.add(twouitUtilisateur);
		jp.add(champsUtilisateur);

		
		JPanel jp2 = new JPanel();
		jp2.setLayout(new GridLayout(3, 1));
		jp2.add(listeTopics);
		jp2.add(listeUtilisateurs);
		jp2.add(annuler);
		
		this.add(intro, BorderLayout.NORTH);
		this.add(jp, BorderLayout.CENTER);
		this.add(jp2, BorderLayout.SOUTH);
		this.setLocationRelativeTo(null);
		this.setVisible(true);
		this.pack();
		this.client = client;
	}
	
	private class ActionListenerChoix implements ActionListener {

		@Override
		public void actionPerformed(ActionEvent e) {
			Object obj = e.getSource();
			
			if(twouitTopic.equals(obj)){
				if(champsTopic.equals(""))
					return;
				else{
					try {
						new Affiche("Derniers twouits sur le topic : " + champsTopic.getText(), client.getDerniersTwouitTopic(champsTopic.getText()), "topic");
					} catch (RemoteException e1) {
						e1.printStackTrace();
					}
				}
			}
			if(twouitUtilisateur.equals(obj)){
				if(champsUtilisateur.equals(""))
					return;
				else{
					try {
						new Affiche("Derniers twouits de : " + champsUtilisateur.getText(), client.getDerniersTwouitUtilisateur(champsUtilisateur.getText()), "twouit");
					} catch (RemoteException e1) {
						e1.printStackTrace();
					}
				}
			}
			if(listeTopics.equals(obj)){
				try {
					new Affiche("Liste des topics", client.getListeTopics(), "listeTopic");
				} catch (RemoteException e1) {
					e1.printStackTrace();
				}
			}
			if(listeUtilisateurs.equals(obj)){
				try {
					new Affiche("Liste des utilisateurs", client.getListeUtilisateurs(), "listeUser");
				} catch (RemoteException e1) {
					e1.printStackTrace();
				}
			}
			if(annuler.equals(obj)){
				dispose();
			}
			
		}
		
	}
}
